NoSQL注入类型有哪些
NoSQL注入类型有以下这些:
重言式注入:又称为永真式,此类攻击是在条件语句中注入代码,使生成的表达式判定结果永远为真,从而绕过认证或访问机制。
联合查询注入:联合查询是一种众所周知的SQL注入技术,攻击者利用一个脆弱的参数去改变给定查询返回的数据集。联合查询最常用的用法是绕过认证页面获取数据。
JavaScript注入:MongoDBServer支持JavaScript,这使得在数据引擎进行复杂事务和查询成为可能,但是传递不干净的用户输入到这些查询中可以注入任意的JavaScript代码,导致非法的数据获取或篡改。
盲注:当页面没有回显时,那么我们可以通过$regex正则表达式来达到和传统SQL注入中substr()函数相同的功能,而且NoSQL用到的基本上都是布尔盲注。
AND注入:这种注入就是攻击者会会构造由”&”操作符和用户引入的的参数组成的正常查询在LDAP目录中搜索,如果攻击者输入一个有效地用户名,然后再这个名字后面注入恰当的语句,密码检查机制就会被绕过。
OR注入:攻击者会构造由”|”操作符和用户引入的的参数组成的正常查询在LDAP目录中搜索,攻击者可以注入代码,维持正确的过滤器结构但能使用查询实现他自己的目标。
防御注入攻击的方法有以下这些:
使用参数化筛选语句,两种方法可以确保应用程序不易受到SQL注入攻击。一种是使用代码审查,另一种是强制使用参数化语句。强制使用参数化语句意味着在运行时将拒绝嵌入用户输入中的SQL语句。但是,目前对此功能的支持不多。
避免使用解释程序,这是黑客用来执行非法命令的手段。
防止SQL注入,但也避免一些详细的错误消息,因为黑客可以使用这些消息。标准的输入验证机制用于验证所有输入数据的长度、类型、语句和企业规则。
使用专业的漏洞扫描工具。企业应该投资于专业的漏洞扫描工具,如著名的Accunetix网络漏洞扫描程序。完美的漏洞扫描器不同于网络扫描器,它专门在网站上查找SQL注入漏洞。最新的漏洞扫描程序可以找到最新发现的漏洞。
企业在Web应用程序开发过程的所有阶段执行代码安全检查。首先,安全测试应该在部署Web应用程序之前实现,这比以前更重要、更深远。企业还应在部署后使用漏洞扫描工具和站点监控工具测试网站。